大家在查找程式碼時可能會看到 if __name__=='__main__': 這段 code,這個是什麼意思呢?
如果你寫程式時都只使用一個 Python 檔,那就不需要用到這段程式碼,但是如果要引用別的檔案就有可能會用到了!
我這邊沿用前一天寫的費氏數列的程式來舉例,以下兩段程式碼的輸出結果都是一樣的,但是為什麼要再加一行 if __name__=='__main__': 呢?
# a.py
def Fibonacci(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return Fibonacci(n - 2) + Fibonacci(n - 1)
for i in range(3):
    print(Fibonacci(i))

# a.py
def Fibonacci(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return Fibonacci(n - 2) + Fibonacci(n - 1)
if __name__=='__main__':
    for i in range(3):
        print(Fibonacci(i))

當我想要在別的檔案中使用我在 a.py 中定義的函式 Fibonacci(n) 時,如果在同一個目錄下有一個檔案 b.py 我把這個函式 Fibonacci(n)  引用至裡面。
底下的程式碼把 a.py 裡面的函式 Fibonacci import。我想要得到費氏數列的第五項,預期得到的結果應該是 5,但是如果沒有加上 if __name__=='__main__': 的話,輸出為
# b.py
from a import Fibonacci
x = Fibonacci(5)
print(x)

main.py 被引用的同時又被執行一次了!
所以 if __name__=='__main__': 這段程式碼在程式被引用時不會執行,只要自己在執行的時候會呼叫,這樣就可以避免呼叫別的檔案的函式時又被執行到。
在 a.py 加入 if __name__=='__main__': 之後再看 b.py 的輸出就會變下面這樣了。

 __name__ 是 python 中內建、隱含的變數,不必宣告即可用,當程式是直接執行時,__name__ 的值就是 __main__,當程式是被引用時,__name__ 的。
待續...